package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.validator.NotNull;

/**
 * PagamentoAluguel generated by hbm2java
 */
@Entity
@Table(name = "pagamento_aluguel")
public class PagamentoAluguel implements java.io.Serializable {

	private int idPagamentoAluguel;
	private TipoPagamento tipoPagamento;
	private Aluguel aluguel;
	private int quantidade;
	private float valor;
	private Float desconto;
	private float valorTotal;

	public PagamentoAluguel() {
	}

	public PagamentoAluguel(int idPagamentoAluguel,
			TipoPagamento tipoPagamento, Aluguel aluguel, int quantidade,
			float valor, float valorTotal) {
		this.idPagamentoAluguel = idPagamentoAluguel;
		this.tipoPagamento = tipoPagamento;
		this.aluguel = aluguel;
		this.quantidade = quantidade;
		this.valor = valor;
		this.valorTotal = valorTotal;
	}

	public PagamentoAluguel(int idPagamentoAluguel,
			TipoPagamento tipoPagamento, Aluguel aluguel, int quantidade,
			float valor, Float desconto, float valorTotal) {
		this.idPagamentoAluguel = idPagamentoAluguel;
		this.tipoPagamento = tipoPagamento;
		this.aluguel = aluguel;
		this.quantidade = quantidade;
		this.valor = valor;
		this.desconto = desconto;
		this.valorTotal = valorTotal;
	}

	@Id
	@Column(name = "id_pagamento_aluguel", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public int getIdPagamentoAluguel() {
		return this.idPagamentoAluguel;
	}

	public void setIdPagamentoAluguel(int idPagamentoAluguel) {
		this.idPagamentoAluguel = idPagamentoAluguel;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_tipo_pagamento", nullable = false)
	@NotNull
	public TipoPagamento getTipoPagamento() {
		return this.tipoPagamento;
	}

	public void setTipoPagamento(TipoPagamento tipoPagamento) {
		this.tipoPagamento = tipoPagamento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_aluguel", nullable = false)
	@NotNull
	public Aluguel getAluguel() {
		return this.aluguel;
	}

	public void setAluguel(Aluguel aluguel) {
		this.aluguel = aluguel;
	}

	@Column(name = "quantidade", nullable = false)
	public int getQuantidade() {
		return this.quantidade;
	}

	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}

	@Column(name = "valor", nullable = false, precision = 8, scale = 8)
	public float getValor() {
		return this.valor;
	}

	public void setValor(float valor) {
		this.valor = valor;
	}

	@Column(name = "desconto", precision = 8, scale = 8)
	public Float getDesconto() {
		return this.desconto;
	}

	public void setDesconto(Float desconto) {
		this.desconto = desconto;
	}

	@Column(name = "valor_total", nullable = false, precision = 8, scale = 8)
	public float getValorTotal() {
		return this.valorTotal;
	}

	public void setValorTotal(float valorTotal) {
		this.valorTotal = valorTotal;
	}

}
